Printing quality determination based on text analysis

ABSTRACT

A method comprising using at least one hardware processor for: analyzing text in a digital document, to identify a text segment referring to a figure of the digital document;
         mapping said text segment to said figure; identifying, in said text segment, reference to one or more non-grayscale colors of said figure, to determine a level of importance of said one or more colors to legibility of said figure; and printing said digital document in accordance with the level of importance.

BACKGROUND

Data generated by computing devices is often printed by ink-jet, laseror other types of printers. These printers adhere ink or toner onto aprintable medium, such as paper. The ink or toner may be stored, forexample, in a cartridge. The cartridge may then be replaced when the inkor the toner is consumed.

In the case of significant ink or toner consumption, the high frequencyof replacement of the cartridges results in higher costs. In fact, asignificant cost associated with owning a printer is that of replacingused printer cartridges. While the price of printers is currentlydecreasing, the price of printer cartridges generally does not. Thus auser may be persuaded to buy a printer because it is less expensive, butis then committed to frequent purchases of more expensive printercartridges.

Color ink, which usually includes cyan (C), magenta (M) and yellow (Y)colors, is sometimes more expensive than black (K) ink. Therefore, manyusers elect to save on color (CMY) and opt to print color documents onlyin black. This, however, may degrade the legibility and/or aesthetics ofthe printed document.

The foregoing examples of the related art and limitations relatedtherewith are intended to be illustrative and not exclusive. Otherlimitations of the related art will become apparent to those of skill inthe art upon a reading of the specification and a study of the figures.

SUMMARY

The following embodiments and aspects thereof are described andillustrated in conjunction with systems, tools and methods which aremeant to be exemplary and illustrative, not limiting in scope.

There is provided, in accordance with an embodiment, a method comprisingusing at least one hardware processor for: analyzing text in a digitaldocument, to identify a text segment referring to a figure of thedigital document; mapping said text segment to said figure; identifying,in said text segment, reference to one or more non-grayscale colors ofsaid figure, to determine a level of importance of said one or morenon-grayscale colors to legibility of said figure; and printing saiddigital document in accordance with the level of importance.

There is further provided, in accordance with an embodiment, a printingserver comprising a non-transitory computer-readable storage mediumhaving program code embodied therewith, the program code executable byat least one hardware processor of the printing server to: receive adigital document for printing; analyze text in the digital document, toidentify a text segment referring to a figure of the digital document;map said text segment to said figure; identify, in said text segment,reference to one or more non-grayscale colors of said figure, todetermine a level of importance of said one or more non-grayscale colorsto legibility of said figure; and transmit said digital document to oneor more printers in accordance with the level of importance.

There is further provided, in accordance with en embodiments, a computerprogram product for document analysis, the computer program productcomprising a non-transitory computer-readable storage medium havingprogram code embodied therewith, the program code executable by at leastone hardware processor to: receive a digital document for printing;analyze text in the digital document, to identify a text segmentreferring to a figure of the digital document; map said text segment tosaid figure; identify, in said text segment, reference to one or morenon-grayscale colors of said figure, to determine a level of importanceof said one or more non-grayscale colors to legibility of said figure;and transmit said digital document to one or more printers in accordancewith the level of importance.

In some embodiments, said printing comprises printing, in said one ormore non-grayscale colors, a page which includes said figure, whereinthe page which includes said figure is part of the digital document.

In some embodiments, said printing in said one or more non-grayscalecolors comprises polychromatic printing.

In some embodiments, said printing further comprises printing, ingrayscale, a page which does not include said figure, wherein the pagewhich does not include said figure is part of the digital document.

In some embodiments, the method further comprises decolorizing saidfigure, wherein said printing is printing in grayscale.

In some embodiments, the method further comprises: converting saidreference to a color-invariant descriptor; and converting said one ormore non-grayscale colors of said figure to a color-invariant texturecorresponding to the color-invariant descriptor.

In some embodiments, the method further comprises displaying a printingrecommendation to a user, based on the level of importance.

In some embodiments, said transmit comprises transmit a page whichincludes said figure to a polychromatic printer, wherein the page whichincludes said figure is part of the digital document.

In some embodiments, said transmit further comprises transmit a pagewhich does not include said figure to a monochromatic printer, whereinthe page which does not include said figure is part of the digitaldocument.

In some embodiments, the program code is further executable by said atleast one hardware processor of the printing server to decolorize saidfigure, wherein said printing is printing in grayscale.

In some embodiments, the program code is further executable by said atleast one hardware processor of the printing server to: convert saidreference to a color-invariant descriptor; and convert said one or morenon-grayscale colors of said figure to a color-invariant texturecorresponding to the color-invariant descriptor.

In some embodiments, the program code is further executable by said atleast one hardware processor of the printing server to display aprinting recommendation to a user, based on the level of importance.

In some embodiments, the program code is further executable by said atleast one hardware processor to decolorize said figure, wherein saidprinting is printing in grayscale.

In some embodiments, the program code is further executable by said atleast one hardware processor to: convert said reference to acolor-invariant descriptor; and convert said one or more non-grayscalecolors of said figure to a color-invariant texture corresponding to thecolor-invariant descriptor.

In addition to the exemplary aspects and embodiments described above,further aspects and embodiments will become apparent by reference to thefigures and by study of the following detailed description.

BRIEF DESCRIPTION OF THE FIGURES

Exemplary embodiments are illustrated in referenced figures. Dimensionsof components and features shown in the figures are generally chosen forconvenience and clarity of presentation and are not necessarily shown toscale. The figures are listed below.

FIG. 1 shows a method for document analysis;

FIG. 2 shows a network diagram of an environment in which the method maybe executed;

FIG. 3 shows a network diagram of another environment in which themethod may be executed; and

FIG. 4 shows a network diagram of yet another environment in which themethod may be executed.

DETAILED DESCRIPTION

A method for efficient utilization of printing resources is disclosedherein. The method may be embodied as a system, method or computerprogram product. For example, the method may be embodied in a printserver configured to receive print jobs from various computing devicesand transmit the print jobs to one or more printers.

In some embodiments thereof, the method includes analyzing the contentsof a print job, namely—text appearing in a digital document sent forprinting. The analysis includes identification of one or more textsegments which refer to one or more figures appearing in the document.For example, such a text segment may read “FIG. 4 shows a pie chart, inwhich the red slice indicates the amount of . . . ”. Once the one ormore text segments have been identified, their one or more referencedfigures are located, and a map of segments and their associated figuresis created. For example, the aforementioned text segment may be mappedto the pie chart by way of providing coordinates of the pie chart on arespective page.

The method continues by identifying, in the one or more text segments,one or more references to one or more non-grayscale colors of thefigure. For example, the wording “the red slice” of the segment may beidentified. Since it refers to a non-grayscale, in this example red,color of the figure.

After these references have been identified, the method proceeds bydetermining a level of importance of the one or more non-grayscalecolors to the legibility of the figure. In a simplistic scenario, themere appearance of color names in the text segment is sufficient toconclude that the colors are important to the legibility of the figure.In a more complex scenario, contextual analysis may be performed, todeduce whether the color contents of the figure may be safely convertedto grayscale or whether their legibility will be significantly harmed asa result of the conversion. For example, the analysis may weigh thedensity of color names in and/or near the text segment. The density maybe computed as the ratio between words being color names and otherwords. Higher density implies a higher level of importance, and viceversa. The level of importance may be binary, for example “important”and “not important”. Alternatively, the level may be on a more diversescale, for example a percentage-based scale or the like.

Advantageously, the efficient utilization of printing resources isenabled by harnessing the determined level of importance. For example,if it is determined that the level of importance of the one or morenon-grayscale colors to the legibility of the one or more figures isabove a certain threshold, the printing of the document may be adaptedto achieve efficient utilization of printing resources. As one example,a page or multiple pages on which that figure(s) appear may be printedin polychromatic printing, while the rest of the pages of the documentmay be printed in cheaper, monochromatic (e.g. grayscale) printing. Thisprinting may be carried out using two separate printers, such as apolychromatic printer (also referred to as a “color” printer) and agrayscale printer, or using a single, polychromatic printer havingseparate cartridges for black ink and ink in one or more other colors.

As another example of efficient utilization of printing resources, theentire document may be printed in monochrome, but the one or morefigures may be decolorized using a technique which mitigates or eveneliminates any illegibility in the printed outcome. For example, thetechnique may be that of Wei Hong Lim and Nor Ashidi Mat Isa, “A noveladaptive color to grayscale conversion algorithm for digital images”,Scientific Research and Essays Vol. 7(30), pp. 2718-2730, 2 Aug. 2012,which is incorporated herein by reference in its entirety.

A further example includes, similar to the previous one, a printing ofthe entire document in monochrome, however while replacing thenon-grayscale elements of the one or more figures with suitablecolor-invariant texture, such as different types of hatching, etc.Optionally, the text segments which refer to these non-grayscale colorsare also amended, to describe the color-invariant texture instead ofdescribing the non-grayscale colors.

While the aforementioned examples may be carried out automatically, suchas by a print server receiving a print job, a workstation sending theprint job or the printer itself, it is also possible to allow the userto manually elect how to act upon the determination of the level ofimportance. The user may then manually trigger one or more of themethods discussed in the above examples.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a hardware processor of a general purpose computer,special purpose computer, or other programmable data processingapparatus to produce a machine, such that the instructions, whichexecute via the processor of the computer or other programmable dataprocessing apparatus, create means for implementing the functions/actsspecified in the flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

Reference is now made to FIG. 1, which shows a flowchart of a method 100for document analysis, in accordance with an embodiment. In a step 102,a digital document is provided or received, for example at aworkstation, at a print server, at a printer, and/or the like. Thedigital document includes text contents and optionally non-textualcontents, such as graphics (charts, graphs, photographs, illustrations,tables etc.). These non-textual contents are hereinafter referred to as“figures”. As another option, the non-textual contents may includedescriptive text in them or in their vicinity, such as various titlesaccompanying the graphics.

Examples of a digital document include word processing documents,spreadsheet documents, presentation documents, etc.

In a step 104, the text of the digital document is analyzed, to identifyone or more text segments which refer to one or more figures being partof the contents of the digital document. In a step 106, it is determinedwhether such text segment has been found. If no text segments referringto one or more figures was found, then the method may proceed to a step120, in which the entire digital document is printed in monochrome, forexample in grayscale. That is, if no text is referring to a figure, theneither the document does not include any figures and can be safelyprinted in monochrome, or the text does include one or more figures butthe importance of printing them in polychrome is relatively low.

If, however, one or more such text segments were found, the method mayproceed to a step 108, in which each found segment is mapped (also“linked” or “associated”) to its respective figure. For example, thetext segments “The results are shown in the graph of FIG. 32, whereinthe red like illustrates the trend.” may be mapped to the location ofthat FIG. 32 in the document. The location of the figure may be eitherby way of providing its coordinates relative to the page, or using anyother method known in the art. For example, the figure may have a uniqueidentifier, so that the text segment may be mapped to this uniqueidentifier. Optionally, the mapping is stored in a memory of thecomputing device carrying out method 100.

In a step 110, the one or more found text segments are analyzed, inorder to identify whether they contain any reference to one or morenon-grayscale colors of the mapped figure(s). In the exemplary textsegment “The results are shown in the graph of FIG. 32, wherein the redlike illustrates the trend”, there is reference to a red color in thefigure. The analysis of step 110 may include a search, inside the foundtext segment(s), for a pre-provided list of names of colors, shades,etc.

In a step 112, it may be determined whether reference to one or morenon-grayscale colors has been identified. If no such reference isidentified, it may be deduced that any non-grayscale colors appearing inthe figures, if such colors exist, are not important. Accordingly, themethod may proceed to step 120, in which the entire digital document isprinted in monochrome.

However, if it is determined that reference to one or more non-grayscalecolors has been identified, the method may proceed to a step 114, inorder to determine the level of importance of the identified one or morenon-grayscale colors to the legibility of the method. In a simplisticscenario, the mere appearance of color names in the text segment issufficient to conclude that the colors are important to the legibilityof the figure. For example, a text analysis algorithm may be employed,to detect color names appearing at a certain distance from a name of afigure (e.g. “FIG. 32”, “Illustration 1.1”, etc.). For example, thedistance may be lower than a few dozen words or even than a few words.This close distance is indicative that the color names have likely beenmentioned to describe the figure.

In a more complex scenario, contextual analysis may be performed, todeduce whether the color contents of the figure may be safely convertedto grayscale or whether their legibility will be significantly harmed asa result of the conversion.

In a step 116 it is determined whether the determined level ofimportance is higher or lower than a predetermined threshold. If it islower than the threshold, the method may continue to step 120, in whichthe entire digital document is printed in monochrome. If, however, thelevel of importance is higher than the predetermined threshold, themethod may continue to a step 118, in which the digital document isprinted in accordance with the level of importance.

Optionally, prior to the printing, the user may be prompted with anotification of any figured and/or text segments that were determined tohave important color in them. The user may then decide if and how toprint the digital document or parts thereof.

Reference is now made to FIG. 2, which shows a network diagram of anenvironment in which method 100 (FIG. 1) may be executed. Theenvironment may include one or more client computers, such as a personalcomputer (PC) 206 and a tablet computer 208, configured to send adigital document 210 and 212, respectively, for printing. Documents 210and/or 212 may be sent to a print (or “printing”) server 200. Printserver 200 may be a device that connects one or more printers, such as agrayscale printer 202 and a polychromatic (or “color”) printer 204, toone or more client computers, such as PC 206 and tablet 208, over anetwork. Print server 200 may accept print jobs from PC 206 and/ortablet 208 PC 206 and tablet 208, and send the jobs to the appropriateprinters, queuing the jobs locally to accommodate the fact that work mayarrive more quickly than the printer can actually handle it. Ancillaryfunctions of print server 200 include the ability to inspect the queueof jobs to be processed, the ability to reorder or delete waiting printjobs, and/or the ability to do various kinds of accounting (such ascounting pages printer, which may involve reading data generated by theprinter(s).

In an embodiment, method 100 (FIG. 1) may be executed by print server200. Accordingly, print server 200 may decide to which of printers 202and 204 to send the print job of the digital document. For example, ifit has been determined that grayscale printing is sufficient for theentire document, whether due to the lack of color figures or due to theconverting of the color figures to grayscale, then the print job may besent to grayscale printer 202. If, on the other hand, it has beendetermined that at least one of the figures needs to be printed incolor, than print server 200 may divert the printing of the page(s) onwhich that figure(s) appears to color printer 204, and the printing ofthe rest of the pages to grayscale printer 202.

Reference is now made to FIG. 3, which shows a network diagram ofanother environment in which method 100 (FIG. 1) may be executed. Theenvironment of FIG. 3, as opposed to that of FIG. 2, lacks a printserver. Instead, client computers, such as a PC 306 and a tablet 308,may send print jobs directly to one or more printers. In this scenario,method 100 may be executed by each of the client computers, which maydecide where to send the print jobs (or parts thereof) to—a grayscaleprinter 302 and/or a color printer 304. For example, it may bedetermined by PC 308 that two pages of document 310 need to be printedby color printer 304, whereas the other ten pages of this document needto be printed by grayscale printer 302. As another example, it may bedetermined by tablet 308 that all the pages of a digital document 312are to be printed in grayscale printer 302.

Reference is now made to FIG. 4, which shows a network diagram ofanother environment in which method 100 (FIG. 1) may be executed. Theenvironment of FIG. 4, as opposed to the environment of FIG. 3, includesonly a single printer 402, in which different cartridges or toners areused for printing different colors. The client computers, in this case aPC 406 and a tablet 408, may instruct printer 402 which color(s) toutilize for which pages of a print job. For example, PC 408 may instructprinter 402 to print two pages of document 410 in CMYK (Cyan, Magenta,Yellow, Black), whereas the other ten pages of this document are printedwhile only utilizing a black cartridge/toner of the printer.

As another option, printer 402 itself may be configured to executemethod 100 (FIG. 1). That is, printer 402 may be configured similar toprint server 200 (FIG. 2), utilizing the printer's internal memory andprocessing units.

The flowcharts and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed herein.

What is claimed is:
 1. A method comprising using at least one hardwareprocessor for: analyzing text in a digital document, to identify a textsegment referring to a figure of the digital document; mapping said textsegment to said figure; identifying, in said text segment, reference toone or more non-grayscale colors of said figure, to determine a level ofimportance of said one or more non-grayscale colors to legibility ofsaid figure; and printing said digital document in accordance with thelevel of importance.
 2. The method according to claim 1, wherein saidprinting comprises printing, in said one or more non-grayscale colors, apage which includes said figure, wherein the page which includes saidfigure is part of the digital document.
 3. The method according to claim2, wherein said printing in said one or more non-grayscale colorscomprises polychromatic printing.
 4. The method according to claim 2,wherein said printing further comprises printing, in grayscale, a pagewhich does not include said figure, wherein the page which does notinclude said figure is part of the digital document.
 5. The methodaccording to claim 1, further comprising decolorizing said figure,wherein said printing is printing in grayscale.
 6. The method accordingto claim 5, wherein: said decolorizing of said figure comprisesconverting said one or more non-grayscale colors of said figure to acolor-invariant texture; and the method further comprises convertingsaid reference to a color-invariant descriptor of the color-invarianttexture.
 7. The method according to claim 1, further comprisingdisplaying a printing recommendation to a user, based on the level ofimportance.
 8. A printing server comprising a non-transitorycomputer-readable storage medium having program code embodied therewith,the program code executable by at least one hardware processor of theprinting server to: receive a digital document for printing; analyzetext in the digital document, to identify a text segment referring to afigure of the digital document; map said text segment to said figure;identify, in said text segment, reference to one or more non-grayscalecolors of said figure, to determine a level of importance of said one ormore non-grayscale colors to legibility of said figure; and transmitsaid digital document to one or more printers in accordance with thelevel of importance.
 9. The printing server according to claim 8,wherein said transmit comprises transmit a page which includes saidfigure to a polychromatic printer, wherein the page which includes saidfigure is part of the digital document.
 10. The printing serveraccording to claim 9, wherein said transmit further comprises transmit apage which does not include said figure to a monochromatic printer,wherein the page which does not include said figure is part of thedigital document.
 11. The printing server according to claim 10, whereinsaid monochromatic printer is a grayscale printer.
 12. The printingserver according to claim 8, wherein the program code is furtherexecutable by said at least one hardware processor of the printingserver to decolorize said figure, wherein said printing is printing ingrayscale.
 13. The printing server according to claim 12, wherein: saiddecolorize of said figure comprises converting said one or morenon-grayscale colors of said figure to a color-invariant texture; andthe program code is further executable by said at least one hardwareprocessor of the printing server to convert said reference to acolor-invariant descriptor of the color-invariant texture.
 14. Theprinting server according to claim 8, wherein the program code isfurther executable by said at least one hardware processor of theprinting server to display a printing recommendation to a user, based onthe level of importance.
 15. A computer program product for documentanalysis, the computer program product comprising a non-transitorycomputer-readable storage medium having program code embodied therewith,the program code executable by at least one hardware processor to:receive a digital document for printing; analyze text in the digitaldocument, to identify a text segment referring to a figure of thedigital document; map said text segment to said figure; identify, insaid text segment, reference to one or more non-grayscale colors of saidfigure, to determine a level of importance of said one or morenon-grayscale colors to legibility of said figure; and transmit saiddigital document to one or more printers in accordance with the level ofimportance.
 16. The computer program product according to claim 13,wherein said transmit comprises transmit a page which includes saidfigure to a polychromatic printer, wherein the page which includes saidfigure is part of the digital document.
 17. The computer program productaccording to claim 14, wherein said transmit further comprises transmita page which does not include said figure to a monochromatic printer,wherein the page which does not include said figure is part of thedigital document.
 18. The computer program product according to claim15, wherein said monochromatic printer is a grayscale printer.
 19. Thecomputer program product according to claim 13, wherein the program codeis further executable by said at least one hardware processor todecolorize said figure, wherein said printing is printing in grayscale.20. The computer program product according to claim 19, wherein: saiddecolorize of said figure comprises converting said one or morenon-grayscale colors of said figure to a color-invariant texture; andthe program code is further executable by said at least one hardwareprocessor to convert said reference to a color-invariant descriptor ofthe color-invariant texture.